<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">


<title>PPM Help</title>
<link href="../../share/doc/manual.css" rel="stylesheet" type="text/css" />
  
</head>
<body>

<div id="container">
	<div id="main">
	
<br>
<table style="text-align: left;  margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td style="vertical-align: top;">
      <h1>Puppy Package Manager (PPM)</h1>

A "package" is Linux terminology for an application. These are held in
online repositories, and you can download and install any package.<br>

      <h2>How to install a package<br>
</h2>

You click a radio-button along the top to choose the desired repository
-- usually the left-most one is the one most suitable for your current
version of Puppy.<br>

      <br>

The radio-buttons aligned vertically on the left enable you to narrow 
the display to a specific category (these notes are for the 'Classic' 
user interface, 'Ziggy' UI has slightly different layout).<br>

      <br>

Notice the checkboxes labeled EXE, DEV, DOC and NLS. Many Puppy PET packages are split into smaller packages, as follows:<br>

      <br>

EXE: This is the actual application, you definitely want this.<br>

DEV: This contains development files, only of interest to those into compiling source code.<br>

DOC: This contains the documentation files of the package<br>

NLS: This contains the international language files of the package.<br>

      <br>

Note that all packages (if you only install the main "EXE" package)
support English. The NLS package will add support for other languages,
but this varies considerably from package to package. Some packages do
not have any non-English support.<br>

      <br>

Note that PET packages follow a naming convention, like this:<br>

      <br>
      <div style="margin-left: 40px;">

abiword-1.2.3.pet ("EXE" package)<br>


abiword_DEV-1.2.3.pet<br>


abiword_DOC-1.2.3.pet<br>


abiword_NLS-1.2.3.pet<br>
      </div>


      <br>

Also note that not all authors of PET packages follow the practice of
splitting PET packages into these component parts. In some cases there
may be, for example, 'abiword-1.2.3.pet' which has everything in it. The
reason that the splitting is usually done is to reduce the size of the
main EXE package.<br>
<br>
As from late May 2012, the PPM is enhanced to support EXE,DEV,DOC,NLS 
filtering of Debian and Ubuntu DEB packages and Mageia RPM packages. For example, 
'abiword-doc_1.2.3-3build1_all.deb' is recognised as a documentation 
package.<br>

      <br>

When you click on one of the packages displayed in the big window,
another window pops up asking if you really want to install the
package, and also offers further information about the package -- so
you can learn more about it before deciding whether to install it.<br>

      <h2>How to uninstall a package<br>
</h2>

When a package is installed, it appears in the window bottom-right.<br>

To uninstall a package, simply click on it. There will be another window asking you to confirm deletion.<br>

      <h2>Package repositories</h2>

There are various PET repositories. PETs are the Puppy format for packages, an acronym that we humourously say stands for <span style="font-style: italic;">Puppy Extra Treats</span>. Those on offer will depend on which
Puppy you are using, but usually there will be these available at least:<br>

      <br>
      <div style="margin-left: 40px;">
puppy-2: The very old Puppy 2.x series<br>

puppy-3: Puppy 3.x series<br>

puppy-4: Puppy 4.x series<br>

puppy-5: Puppy 5.x series<br>
puppy-noarch: These have no compiled executables and work in any Puppy (and any CPU)<br>
puppy-common: These have compiled executables and are intended to work in any Puppy<br>
      </div>

      <br>
A note about those last two: "noarch" packages do not have any compiled 
executables, so they will work regardless of CPU -- x86, ARM, whatever. 
"common" have compiled executables, and are a collection of packages 
used in most builds of Puppy.<br>
<br>

For your Puppy, you may also have others, such as 'puppy-quirky', 
'puppy-wary5', or 'puppy-lucid'. One of these will be a collection of 
packages created specifically for your particular Puppy. For example, 
Precise Puppy is built from Ubuntu Precise Pangolin binary packages, and
 PET repo 'puppy-precise' has PET packages created explicitly for this 
pup.<br>

      <br>

Generally, use those that seem most appropriate to your version of
Puppy. The older ones have packages that may or may not work in your
Puppy -- the older the repository, the more likely this may be the
case. <br>

      <br>

We mostly keep the old repositories available, as sometimes there is
some old package that you really want to use. But as a general
principle, look in the more recent repositories first.<br>

      <br>

Your Puppy may be built from the packages of one of the other major
Linux distributions, such as Debian, Ubuntu or Slackware. In that case,
PPM will offer those repositories. They are going to be the most
compatible and the ones that you should look in first. For example, 
Precise Puppy, built from Ubuntu Precise Pangolin, will have the 
'ubuntu-precise-main', 'ubuntu-precise-universe' and 
'ubuntu-precise-multiverse' repositories.<br>
      <br>
Of course, the packages of other distributions are not going to be PET
packages. PETs have ".pet" on the end of the filename (file extension).<br>
Debian and Ubuntu have DEB packages, with ".deb" on the end of the filename.<br>
Slackware packages have ".tgz" or ".txz" file extension.<br>
Mageia has RPM packages, with ".rpm" file extension.<br>
Whatever the type of package, PPM is capable of installing it.<br>
      <h2>
Searching</h2>

The "Find:" box enables you to search for any package.<br>
      <br>
You can type in a partial name, but a match is only found from the
left. For example, if you do a search for "pan" you might find this:<br>
      <br>
      <div style="margin-left: 40px;">pango-1.28.1-w5 Library for layout and rendering of internationalized text<br>
pango_DOC-1.28.1-w5 Library for layout and rendering of internationalized text<br>
pangomm-2.26.2-w5 oo wrapper for pango library<br>
pangomm_DOC-2.26.2-w5 oo wrapper for pango library<br>
panoramixproto-1.1-w5 Panoramix extension headers<br>
      </div>
      <br>
But doing a search on "mm" yields nothing, as there are no package names starting with "mm".<br>
      <br>
However, the Find box will accept '*' wildcards, what is referred to as
"glob wildcards". So, type in "*mm" will find all packages with "mm" in
their names.<br>
      <br>
You can even have multiple wildcards, for example "p*mix*to", which will find the 'panoramixproto' package.<br>
      <br>
The search is case-insensitive, so a search for "PAN" will give the same results as shown above.<br>
      <br>
As from May 2012, PPM also supports searching for multiple keywords. Also, 
the Description field is searched as well as the package name. For 
example, it you type into the search-box, "abiword plugins", it 
will find packages with these two words, either in the package name or 
the description.<br>
<br>
Also from May 2012, you can choose to search just the current repository
 or all repositories. Previously, it was restricted to current repo 
only.<br>

      <br>
One thing to note about the search is that it searches the entire
repository (or repositories), and ignores the vertical Category radiobuttons on the left
side.<br>
      <h2>Installing without the PPM GUI</h2>
You can actually download any package, from anywhere, and install it.
All that you have to do is click on the package in the file-manager
window, and the package-installer component of PPM will run and install
the package. This works for many types of packages, including PETs,
Ubuntu/Debian DEBs, Slackware, and Arch packages.<br>
      <br>
Note however, if you install an individual package in this way, without
going through the PPM GUI interface, any dependencies are not
installed, and you will have to take care of that yourself.<br>
      <br>
One good thing, a package installed in this way will show up in the PPM
GUI installed-packages-window and it can thus be uninstalled.<br>
<h2>How to update Puppy to next version</h2>
A little while ago, someone criticised PPM, stating that it did not 
allow a complete upgrade of Puppy to the next version. The package 
managers in some distributions allow you to install all packages 
required to completely upgrade to the latest version of the distro.<br>
<br>
PPM does not offer that, because Puppy does not work that way. It is 
outside the ambit, or we could say the "contract" of what PPM is 
required to do. A new version of Puppy is provided as just three or four
 files. Say for example you have a "frugal" installation of Puppy on 
hard drive, it will consist of just three files, vmlinuz, initrd.gz and 
the main Puppy filesystem (for example precise-5.3.sfs). There is also a
 fourth file known as the "devx" (for example devx_precise_5.3.sfs). To 
upgrade, all you do is replace those files. It is a totally different 
system to a package-by-package upgrade. This page has more details: <a href="http://puppylinux.com/hard-puppy.htm">http://puppylinux.com/hard-puppy.htm</a> <br>
<br>
Regards,<br>

Barry Kauler, May 2012<br>
</td>
    </tr>
  </tbody>
</table>
<br>
  </div> <!--main-->
</div>
 </body>
</html>